使用EasyExcel导出图片及异常处理 | 您所在的位置:网站首页 › easyExcel 处理ExcelDataConvertException异常获取 › 使用EasyExcel导出图片及异常处理 |
1、使用String类型导出 定义自己的Converter,不使用默认的StringImageConverter
如果图片路径为空或者图片路径是错误的,返回相应的内容 import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.property.ExcelContentProperty; import com.alibaba.excel.util.IoUtils; import com.njyjz.common.util.Validater; public class MyStringImageConverter implements Converter { @Override public Class supportJavaTypeKey() { return String.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.IMAGE; } @Override public String convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { throw new UnsupportedOperationException("Cannot convert images to string"); } // 图片失效处理 @Override public CellData convertToExcelData(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws IOException { InputStream inputStream = null; try { if(Validater.isEmptyString(value)) { return new CellData("图片路径为空"); } URL urlValue = new URL(value); // 开启连接 URLConnection uc = urlValue.openConnection(); // 获取响应状态 int statusCode = ((HttpURLConnection)uc).getResponseCode(); switch (statusCode) { case 200: inputStream = urlValue.openStream(); break; default: return new CellData("无法加载图片"); } byte[] bytes = IoUtils.toByteArray(inputStream); return new CellData(bytes); } catch (ConnectException exception) { return new CellData("无法加载图片"); } catch (FileNotFoundException fileNotFoundException) { return new CellData("无法加载图片"); } finally { if (inputStream != null) { inputStream.close(); } } } } 2、更改图片字段注解 @ExcelProperty(value = "扫描图像", index = 0, converter = MyStringImageConverter.class) private String fileUrl; 3、导出样例
|
CopyRight 2018-2019 实验室设备网 版权所有 |